#ifndef _SCENE_OBJECT_H_
#define _SCENE_OBJECT_H_

#include "Commons.h"
#include "CGlobals.h"
#include "IAnimatedObject.h"
#include "IrrArray.h"
#include "aabbox3d.h"

extern CGlobals* g;

enum 
{
	E_OBJ_GENERIC,
	E_OBJ_WAYPOINT,
	E_OBJ_GRID_WAYPOINT,
	E_OBJ_CAMERA_AREA,
	E_OBJ_CAM_CTRL_POINT,
	E_OBJ_SPIDER_MAN,
	E_OBJ_CINEMATIC,
};

class CSceneObject : public IAnimatedObject
{
public:
	CSceneObject();
	CSceneObject (const CSceneObject&);
	virtual ~CSceneObject();				

	void InitAttributes( bool create = true );
	void ProcessAttributes();

	
	array<stringw>		GetAnimationNames( bool times = false);
	int					GetCurrentAnimationTime(int index);
	int					m_lastAnimation;

	IAttributes*		m_UserData;
	int					m_type; //used only for enumed objects above ...

	aabbox3df			m_box;

	int					m_roomIDLinks[MAX_ROOM_LINKS];
	short				m_linkIndexLinks[MAX_ROOM_LINKS];
	int					m_linkDoorID[MAX_ROOM_LINKS];
};

#endif
